/**
 * 自定义标签页切换功能修复
 * 修复Jazzmin 3.0.1版本中水平标签页切换功能的JavaScript问题
 */

(function($) {
    'use strict';
    
    // 等待DOM加载完成
    $(document).ready(function() {
        // 检查是否存在标签页
        var $tabs = $('.nav-tabs .nav-link');
        var $tabPanes = $('.tab-content .tab-pane');
        
        if ($tabs.length === 0) {
            return; // 如果没有标签页，直接返回
        }
        
        console.log('自定义标签页功能已加载，找到', $tabs.length, '个标签页');
        
        // 移除现有的事件监听器，避免冲突
        $tabs.off('click.custom-tabs');
        
        // 添加自定义点击事件
        $tabs.on('click.custom-tabs', function(e) {
            e.preventDefault();
            e.stopPropagation();
            
            var $clickedTab = $(this);
            var targetId = $clickedTab.attr('aria-controls');
            
            console.log('点击标签页:', $clickedTab.text().trim(), '目标ID:', targetId);
            
            // 如果已经是激活状态，不需要切换
            if ($clickedTab.hasClass('active')) {
                return;
            }
            
            // 移除所有标签页的激活状态
            $tabs.removeClass('active').attr('aria-selected', 'false');
            
            // 激活当前点击的标签页
            $clickedTab.addClass('active').attr('aria-selected', 'true');
            
            // 隐藏所有标签面板
            $tabPanes.removeClass('active show');
            
            // 显示对应的标签面板
            var $targetPane = $('#' + targetId);
            if ($targetPane.length > 0) {
                $targetPane.addClass('active show');
                console.log('已切换到标签面板:', targetId);
            } else {
                console.warn('未找到目标标签面板:', targetId);
            }
            
            // 更新URL锚点
            if (history.replaceState) {
                var newUrl = window.location.pathname + window.location.search + '#' + encodeURIComponent(targetId);
                history.replaceState(null, null, newUrl);
            }
        });
        
        // 处理页面加载时的锚点
        function handleInitialHash() {
            var hash = window.location.hash;
            if (hash) {
                var targetId = decodeURIComponent(hash.substring(1));
                var $targetTab = $tabs.filter('[aria-controls="' + targetId + '"]');
                
                if ($targetTab.length > 0) {
                    console.log('根据URL锚点激活标签页:', targetId);
                    $targetTab.trigger('click.custom-tabs');
                }
            }
        }
        
        // 页面加载完成后处理初始锚点
        setTimeout(handleInitialHash, 100);
        
        // 监听浏览器前进后退按钮
        $(window).on('hashchange', function() {
            handleInitialHash();
        });
        
        // 添加键盘导航支持
        $tabs.on('keydown', function(e) {
            var $currentTab = $(this);
            var currentIndex = $tabs.index($currentTab);
            var $targetTab;
            
            switch(e.which) {
                case 37: // 左箭头
                    e.preventDefault();
                    $targetTab = $tabs.eq(currentIndex - 1);
                    if ($targetTab.length === 0) {
                        $targetTab = $tabs.last();
                    }
                    $targetTab.focus().trigger('click.custom-tabs');
                    break;
                case 39: // 右箭头
                    e.preventDefault();
                    $targetTab = $tabs.eq(currentIndex + 1);
                    if ($targetTab.length === 0) {
                        $targetTab = $tabs.first();
                    }
                    $targetTab.focus().trigger('click.custom-tabs');
                    break;
                case 13: // 回车
                case 32: // 空格
                    e.preventDefault();
                    $currentTab.trigger('click.custom-tabs');
                    break;
            }
        });
        
        console.log('自定义标签页功能初始化完成');
    });
    
})(django.jQuery || jQuery);